/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |				
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  8                                   	
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

convertToMeters 1;

vertices
(
    //back up
    (1 0 -0.5)                  	//0
    (3 0 -0.5)                    	//1 
    (30 0 -0.5)                   	//2   
    (30 2.12132 -0.5)            	//3 
    (2.12132 2.12132 -0.5)      	//4
    (0.707107 0.707107 -0.5)      	//5
    (30 20 -0.5)                   	//6  
    (2.12132 20 -0.5)             	//7
    (0 20 -0.5)                    	//8 
    (0 3 -0.5)                    	//9
    (0 1 -0.5)                  	//10
    (-1 0 -0.5)                 	//11
    (-3 0 -0.5)                   	//12 
    (-20 0 -0.5)                   	//13
    (-20 2.12132 -0.5)            	//14
    (-2.12132 2.12132 -0.5)     	//15
    (-0.707107 0.707107 -0.5)     	//16
    (-20 20 -0.5)                   //17
    (-2.12132 20 -0.5)            	//18
    
    //front up
    (1 0 0.5)                   	//19
    (3 0 0.5)                     	//20
    (30 0 0.5)                    	//21
    (30 2.12132 0.5)             	//22
    (2.12132 2.12132 0.5)       	//23
    (0.707107 0.707107 0.5)       	//24
    (30 20 0.5)                    	//25
    (2.12132 20 0.5)              	//26
    (0 20 0.5)                     	//27
    (0 3 0.5)                     	//28 
    (0 1 0.5)                   	//29  
    (-1 0 0.5)                  	//30
    (-3 0 0.5)                    	//31  
    (-20 0 0.5)                    	//32
    (-20 2.12132 0.5)             	//33  
    (-2.12132 2.12132 0.5)      	//34  
    (-0.707107 0.707107 0.5)      	//35 
    (-20 20 0.5)                    //36
    (-2.12132 20 0.5)             	//37  
    
    //back down
    (30 -2.12132 -0.5)            	//38
    (2.12132 -2.12132 -0.5)      	//39
    (0.707107 -0.707107 -0.5)      	//40
    (30 -20 -0.5)                   //41 
    (2.12132 -20 -0.5)             	//42
    (0 -20 -0.5)                    //43
    (0 -3 -0.5)                    	//44
    (0 -1 -0.5)                  	//45
    (-20 -2.12132 -0.5)            	//46
    (-2.12132 -2.12132 -0.5)     	//47
    (-0.707107 -0.707107 -0.5)     	//48
    (-20 -20 -0.5)                  //49
    (-2.12132 -20 -0.5)            	//50
    
    //front down
    (30 -2.12132 0.5)             	//51
    (2.12132 -2.12132 0.5)       	//52
    (0.707107 -0.707107 0.5)       	//53
    (30 -20 0.5)                    //54 
    (2.12132 -20 0.5)              	//55
    (0 -20 0.5)                     //56
    (0 -3 0.5)                     	//57
    (0 -1 0.5)                   	//58
    (-20 -2.12132 0.5)             	//59
    (-2.12132 -2.12132 0.5)      	//60
    (-0.707107 -0.707107 0.5)      	//61
    (-20 -20 0.5)                   //62
    (-2.12132 -20 0.5)             	//63
   
);

blocks
(
    //up
    hex (5 4 9 10 24 23 28 29) (20 10 1) simpleGrading (2 1 1)       	//0
    hex (0 1 4 5 19 20 23 24) (20 10 1) simpleGrading (2 1 1)         	//1
    hex (1 2 3 4 20 21 22 23) (50 10 1) simpleGrading (6 1 1)         	//2
    hex (4 3 6 7 23 22 25 26) (50 30 1) simpleGrading (6 7 1)         	//3 
    hex (9 4 7 8 28 23 26 27) (10 30 1) simpleGrading (1 7 1)         	//4
    hex (15 16 10 9 34 35 29 28) (20 10 1) simpleGrading (0.5 1 1)    	//5
    hex (12 11 16 15 31 30 35 34) (20 10 1) simpleGrading (0.5 1 1)   	//6
    hex (13 12 15 14 32 31 34 33) (30 10 1) simpleGrading (0.15 1 1)   	//7
    hex (14 15 18 17 33 34 37 36) (30 30 1) simpleGrading (0.15 7 1)   	//8
    hex (15 9 8 18 34 28 27 37) (10 30 1) simpleGrading (1 7 1)       	//9
    
    //down
    hex (40 45 44 39 53 58 57 52) (10 20 1) simpleGrading (1 2 1)      	//10 
    hex (0 40 39 1 19 53 52 20) (10 20 1) simpleGrading (1 2 1)         //11  
    hex (1 39 38 2 20 52 51 21) (10 50 1) simpleGrading (1 6 1)        	//12 
    hex (39 42 41 38 52 55 54 51) (30 50 1) simpleGrading (7 6 1)      	//13   
    hex (44 43 42 39 57 56 55 52) (30 10 1) simpleGrading (7 1 1)       //14 
    hex (47 44 45 48 60 57 58 61) (10 20 1) simpleGrading (1 0.5 1)     //15 
    hex (12 47 48 11 31 60 61 30) (10 20 1) simpleGrading (1 0.5 1)     //16 
    hex (13 46 47 12 32 59 60 31) (10 30 1) simpleGrading (1 0.15 1)  	//17  
    hex (46 49 50 47 59 62 63 60) (30 30 1) simpleGrading (7 0.15 1)  	//18  
    hex (47 50 43 44 60 63 56 57) (30 10 1) simpleGrading (7 1 1)       //19   
);

edges
(
    //up
    arc 0 5 (0.939693 0.34202 -0.5)
    arc 5 10 (0.34202 0.939693 -0.5)
    arc 19 24 (0.939693 0.34202 0.5)
    arc 24 29 (0.34202 0.939693 0.5)
    arc 11 16 (-0.939693 0.34202 -0.5)
    arc 16 10 (-0.34202 0.939693 -0.5)
    arc 30 35 (-0.939693 0.34202 0.5)
    arc 35 29 (-0.34202 0.939693 0.5)

    arc 15 9 (-0.1 3 -0.5)
    arc 12 15 (-3 0.1 -0.5)
    arc 1 4 (3 0.1 -0.5)
    arc 4 9 (0.1 3 -0.5)
    arc 34 28 (-0.1 3 0.5)
    arc 23 28 (0.1 3 0.5)
    arc 20 23 (3 0.1 0.5)
    arc 31 34 (-3 0.1 0.5)

    //down
    arc 0 40 (0.939693 -0.34202 -0.5)
    arc 40 45 (0.34202 -0.939693 -0.5)
    arc 19 53 (0.939693 -0.34202 0.5)
    arc 53 58 (0.34202 -0.939693 0.5)
    arc 11 48 (-0.939693 -0.34202 -0.5)
    arc 48 45 (-0.34202 -0.939693 -0.5)
    arc 30 61 (-0.939693 -0.34202 0.5)
    arc 61 58 (-0.34202 -0.939693 0.5)

    arc 1 39  (3 -0.1 -0.5)
    arc 39 44 (0.1 -3 -0.5)
    arc 20 52 (3 -0.1 0.5)
    arc 52 57 (0.1 -3 0.5) 
    arc 47 44 (-0.1 -3 -0.5)
    arc 12 47 (-3 -0.1 -0.5)
    arc 31 60 (-3 -0.1 0.5)
    arc 60 57 (-0.1 -3 0.5)  
);

boundary
(
    
    out
    {
		type patch;
		faces
		(
		    //up
		    (2 3 22 21)
		    (3 6 25 22)
		    
		    //down
		    (38 2 21 51) 
		    (41 38 51 54) 
		);
    }

    sym1
    {
		type symmetryPlane;
		faces
		(
		    (7 8 27 26)
		    (6 7 26 25)
		    (8 18 37 27)
		    (18 17 36 37)
		);
    }
      
    sym2
    {
		type symmetryPlane;
		faces
		(
		    (43 42 55 56) 
		    (42 41 54 55) 
		    (50 43 56 63) 
		    (49 50 63 62) 
		);
    }

    in
    {
		type patch;
		faces
		(
		    //up
		    (14 13 32 33)
		    (17 14 33 36)
		    
		    //down
		    (13 46 59 32) 
		    (46 49 62 59) 
    	);
    }

    cylinder
    {
		type wall;
		faces
		(
		    //up
		    (10 5 24 29)
		    (5 0 19 24)
		    (16 10 29 35)
		    (11 16 35 30)
		    
		    //down
		    (40 45 58 53) 
		    (0 40 53 19)  
		    (45 48 61 58) 
		    (48 11 30 61) 
    	);
    }

	back 
    {
		type empty;
		faces
		(
			//up
		    (5 10 9 4)
		    (0 5 4 1)
		    (1 4 3 2)
		    (4 7 6 3)
		    (9 8 7 4)
		    (16 15 9 10)
		    (11 12 15 16)
		    (12 13 14 15)
		    (14 17 18 15)
		    (15 18 8 9)

		    //down
		    (45 40 39 44)
		    (40 0 1 39)
		    (1 2 38 39)
		    (39 38 41 42)
		    (44 39 42 43)
		    (48 45 44 47)
		    (11 48 47 12)
		    (13 12 47 46)
		    (46 47 50 49)
		    (47 44 43 50)
    	);
    }

	front
    {
		type empty;
		faces
		(
			//up
		    (24 23 28 29)
		    (20 23 24 19)
		    (21 22 23 20)
		    (22 25 26 23)
		    (26 27 28 23)
		    (28 34 35 29)
		    (34 31 30 35)
		    (33 32 31 34)
		    (36 33 34 37)
		    (37 34 28 27)
	 
		    //down
		    (53 58 57 52)
		    (19 53 52 20)
		    (21 20 52 51)
		    (51 52 55 54)
		    (52 57 56 55)
		    (58 61 60 57)
		    (61 30 31 60)
		    (31 32 59 60)
		    (60 59 62 63)
		    (57 60 63 56)
    	);
    }
     
);

mergePatchPairs
(
);

// ************************************************************************* //
